package br.com.strings_serializacao;

/**
 * Objetivo: Demonstrar classes de entrada e saida encadeadas.
 * Se nao for utilizar um objeto do tipo File para ser encapsulado em um FileWriter,
 * entao a criaca do objeto deve ser feita dentro de um bloco try/catch para tratar 
 * uma IOException, ou o metodo que faz a criacao, neste caso main, deve acrescentar
 * o lancamento da excecao em sua interface publica atraves da intrucao throws
 * IOExpection.
 */
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class ExemploBufferedWriter2 {
	public static void main(String[] args) {
		try {
			//Aqui se cria a variavel de referencia FileWriter, um objeto do tipo 
			//FileWriter e um arquivo vazio no disco rigido.
			FileWriter fw = new FileWriter("c://Buffered2.txt");
			//construtor com argumento do tipo Writer
			BufferedWriter bw = new BufferedWriter(fw);
			bw.write("Teste BufferedWriter 2");
			bw.flush();
			bw.close();
			
			//neste caso, como nao ha um objeto do tipo File o construtor recebe uma
			//String com o caminho do arquivo para poder ler o seu conteudo.
			FileReader fr = new FileReader("c://Buffered2.txt");
			BufferedReader br = new BufferedReader(fr);
			String s;
			while((s = br.readLine()) != null){
				System.out.println(s);
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		//A instrucao abaixo nao cria um arquivo no disco e lanca a exexcao 
		//FileNotFoundException, pois o arquivo nao existe no disco para ser lido.
		/*try {
			FileReader fr2 = new FileReader("c://TesteFileReader.txt");
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}*/
	}

}
